package com.niiwoo.civet.mobile.vo.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;

import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
@ApiModel
public class FortunePlazaResponseVO {

	/**
	 * 财富总额(可用余额[投资账户余额+借款账户余额]+在途资金 + 待收本息)
	 */
	@ApiModelProperty(value = "财富总额(可用余额[投资账户余额+借款账户余额]+在途资金 + 待收本息)", required = true)
	private BigDecimal amountTotal;

	/**
	 * 投资账户可用余额
	 */
	@ApiModelProperty(value = "投资账户可用余额", required = true)
	private BigDecimal investorAvailableBalance;

	/**
	 * 借款账户可用余额
	 */
	@ApiModelProperty(value = "借款账户可用余额", required = true)
	private BigDecimal borrowerAvailableBalance;

	/**
	 * 在途金额(担保保证金+垫付金额+其它金额)
	 */
	@ApiModelProperty(value = "在途金额(担保保证金+垫付金额+其它金额)", required = true)
	private BigDecimal onWayAmount;

	/**
	 * 待收本息(待收本金+待收利息)[5.5.8+待收平台加息+待收活动计息+待收加息券加息]
	 */
	@ApiModelProperty(value = "待收本金+参考收益(待收利息+平台或活动加息+加息券加息)", required = true)
	private BigDecimal dueInCorpusInterest;

	/**
	 * 待收本金
	 * 
	 * @return
	 */
	@ApiModelProperty(value = "待收本金", required = true)
	private BigDecimal dueInCorpus;

	/**
	 * 参考收益(待收利息+平台或活动加息+加息券加息)
	 */
	@ApiModelProperty(value = "参考收益(待收利息+平台或活动加息+加息券加息)", required = true)
	private BigDecimal referenceInterest;

	/**
	 * 待收罚息
	 */
	@ApiModelProperty(value = "待收罚息", required = true)
	private BigDecimal dueInPenaltyFee;

	/**
	 * 担保保证金
	 */
	@ApiModelProperty(value = "担保保证金", required = true)
	private BigDecimal guaranteeCashDeposit;

	/**
	 * 垫付金额
	 */
	@ApiModelProperty(value = "垫付金额", required = true)
	private BigDecimal advance;

	/**
	 * 其它金额 (投资冻结+担保中未成标金额+还款冻结+提现冻结)
	 */
	@ApiModelProperty(value = "其它金额 (投资冻结+担保中未成标金额+还款冻结+提现冻结)", required = true)
	private BigDecimal otherAmount;

	/**
	 * 投资冻结
	 */
	@ApiModelProperty(value = "投资冻结", required = true)
	private BigDecimal investFreeze;

	/**
	 * 担保冻结
	 */
	@ApiModelProperty(value = "担保冻结", required = true)
	private BigDecimal guaranteeFreeze;

	/**
	 * 还款冻结
	 */
	@ApiModelProperty(value = "还款冻结", required = true)
	private BigDecimal repaymentFreeze;

	/**
	 * 提现冻结
	 */
	@ApiModelProperty(value = "提现冻结", required = true)
	private BigDecimal withdrawFreeze;

	/**
	 * 累计收益
	 */
	@ApiModelProperty(value = "累计收益(投资收益+尽调收益+担保收益+平台奖励+投资奖励+平台发放+用户红包)", required = true)
	private BigDecimal incomeTotal;

	/**
	 * 回款利息
	 */
	@ApiModelProperty(value = "回款利息", required = true)
	private BigDecimal investIncome;

	/**
	 * 尽调收益
	 */
	@ApiModelProperty(value = "尽调收益", required = true)
	private BigDecimal researchIncome;

	/**
	 * 担保收益
	 */
	@ApiModelProperty(value = "担保收益", required = true)
	private BigDecimal guaranteeIncome;

	/**
	 * 卡券红包
	 */
	@ApiModelProperty(value = "卡券红包", required = true)
	private BigDecimal prize;

	/**
	 * 平台奖励
	 */
	@ApiModelProperty(value = "平台奖励：平台发放的平台加息、活动加息、活动现金奖励、活动补帖等。（原尽调或担保收益已合并到平台奖励中）", required = true)
	private BigDecimal platformGiven;

	/**
	 * 推荐奖励
	 */
	@ApiModelProperty(value = "推荐奖励(推荐用户注册并投资或借款获得的现金奖励。)", required = true)
	private BigDecimal inviteGiven = BigDecimal.ZERO;

	/**
	 * 平台发放
	 */
	@ApiModelProperty(value = "平台发放", required = true)
	private BigDecimal platformProvide;

	/**
	 * 用户红包
	 */
	@ApiModelProperty(value = "用户红包", required = true)
	private BigDecimal userRedPacket;

	/**
	 * 累计支出
	 */
	@ApiModelProperty(value = "累计支出(投资费用+担保收益支出费用+提现手续费+借款费用+提现手续费+债权出让手续费)", required = true)
	private BigDecimal payTotal;

	/**
	 * 投资费用
	 */
	@ApiModelProperty(value = "投资费用", required = true)
	private BigDecimal investFee;

	/**
	 * 担保收益支出费用-担保人身份担保收益时支出手续费
	 */
	@ApiModelProperty(value = "担保收益支出费用-担保人身份担保收益时支出手续费", required = true)
	private BigDecimal guaranteeIncomeFee;

	/**
	 * 提现手续费
	 */
	@ApiModelProperty(value = "提现手续费", required = true)
	private BigDecimal withdrawFee;

	/**
	 * 债权出让手续费
	 */
	@ApiModelProperty(value = "债权出让手续费", required = true)
	private BigDecimal creditorSaleFee;

	/**
	 * 借款费用(借款的所有支出费用：担保费+预仲裁+平台服务费+平台管理费+利息+罚息)
	 */
	@ApiModelProperty(value = "借款费用(借款的所有支出费用：担保费+预仲裁+平台服务费+平台管理费+利息+罚息)", required = true)
	private BigDecimal borrowFee;

	/**
	 * 累计充值金额
	 */
	@ApiModelProperty(value = "累计充值金额", required = true)
	private BigDecimal rechargeTotal;

	/**
	 * 累计提现金额
	 */
	@ApiModelProperty(value = "累计提现金额", required = true)
	private BigDecimal withdrawTotal;

	/**
	 * 累计投资金额
	 */
	@ApiModelProperty(value = "累计投资金额", required = true)
	private BigDecimal investTotal;

	/**
	 * 累计借款金额
	 */
	@ApiModelProperty(value = "累计借款金额", required = true)
	private BigDecimal borrowTotal;

	/**
	 * 累计还款金额
	 */
	@ApiModelProperty(value = "累计还款金额", required = true)
	private BigDecimal repaymentTotal;

	/**
	 * 加入天数
	 */
	@ApiModelProperty(value = "加入天数", required = true)
	private Integer registerDay;

	/**
	 * 注册日期
	 */
	@ApiModelProperty(value = "注册日期", required = true)
	private Date registerDate;
	
	/**
	 * 是否存在财富数据 前端展示使用
	 * 前端展示规则，以下任意一项数据不为0，前端展示相应数据：
		1.投资账户可用余额
		2.借款账户可用余额
		3.累计收益
		4.费用支出
		5.累计充值金额
		6.累计提现金额
	 */
	@ApiModelProperty(value = "是否存在财富数据", required = true)
	private Boolean isExistMoneyData;

	@ApiModelProperty(value = "债转总开关：0-关闭、1-开启", required = true)
	private Integer creditorSwitch;
}
